Tengo el siguiente código que lee el contenido de un archivo línea por línea.
document.getElementById('file').onchange = function() { var file = this.files[0]; var reader = new FileReader(); reader.onload = function(progressEvent) { var fileContentArray = this.result.split(/\r\n|\n/); for (var line = 0; line < fileContentArray.length - 1; line++) { console.log(line + " --> " + fileContentArray[line]); } }; reader.readAsText(file); };Sé que el código para retrasar en JS es
setTimeout(function() { }, 1000)Quiero mostrar línea por línea pero con un retraso de 1 segundo entre líneas
Pero ya tengo que ponerlo antes del bucle for y no funciona.
Puede usar setInterval para ejecutar su función en un intervalo.
Además, no olvide clearInterval cuando se cumpla la condición, o de lo contrario la función no se detendrá
Código de muestra
document.getElementById('file').onchange = function () { var file = this.files[0]; var reader = new FileReader(); reader.onload = function (progressEvent) { var fileContentArray = this.result.split(/\r\n|\n/); let index = 0; const interval = setInterval(function() { console.log(index + " --> " + fileContentArray[index]); ++index; if (index === lines.length) { clearInterval(interval); } }, 1000) }; reader.readAsText(file); };